package com.df.my_net_game.web.gm_controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.annotation.Validated;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;

//@RestController
public class GmInterfaceController {
    @Value("gmSign")
    private String gmSign;

//    @PostMapping("gm")
//    public R Gm(@RequestBody @Validated GmDto gmDto) {
//        R.RBuilder builder = R.builder();
//        //验签名
////        byte[] bytes = (gmSign + gmDto.getTimestamp()).getBytes(StandardCharsets.UTF_8);
////        String sign = DigestUtils.md5DigestAsHex(bytes);
////        if(!sign.equals(gmDto.getKey())){//先简单的md5加密，后续缓存RSA2
////            return builder.code(-1).msg("认证失败").build();
////        }
//        //
//        IGMHandler handler = GMHandlerManager.getInstance().getHandler(gmDto.getCmd());
//        if (handler == null) {
//            return builder.code(-1).msg("未定义的cmd:"+gmDto.getCmd()).build();
//        }
//        try {
//            R handle = handler.handle(gmDto);
//            return handle;
//        }catch (Exception e) {
//            e.printStackTrace();
//            return builder.code(-1).msg(e.getMessage()).build();
//        }
//    }
//    @RequestMapping("update_test")
//    public R update_test() {
//        return R.builder().code(-1).msg("update_after__").build();
//    }
//
//    /**
//     * 接收文件
//     * type：文件类型：code 代码压缩文件； data：配置表数据文件
//     * @return
//     */
//    @PostMapping("tempFile/{type}")
//    public R receiveFile(@RequestParam("file") MultipartFile file, @PathVariable("type") String type) {
//        if(file==null){
//            return R.builder().code(-1).build();
//        }
//        if(file.isEmpty()){
//            return R.builder().code(-1).build();
//        }
//        String filePath = "";
//        if(type.equals("data")){
//            filePath = HotUpdateManager.getInstance().hot_temp_data;
//        }else if (type.equals("code")){
//            filePath =HotUpdateManager.getInstance().hot_temp_class;
//        }else {
//            return R.builder().code(-1).msg("未定义的文件类型："+type).build();
//        }
//        if(filePath==null | filePath.isEmpty()){
//            return R.builder().code(-1).msg("服务器热更新路径未配置："+type).build();
//        }
//        try {
//            String originalFilename = file.getOriginalFilename();
//            String path = filePath+ File.separator+originalFilename;
//            try (
//                    FileOutputStream fileOutputStream = new FileOutputStream(path);
//                    InputStream inputStream = file.getInputStream()
//            ){
//                inputStream.transferTo(fileOutputStream);
//            }catch (Exception e){
//                e.printStackTrace();
//            }
//        } catch (Exception e) {
//            R.builder().code(-1).msg(e.getMessage()).build();
//        }
//        return R.builder().code(1).build();
//    }
}
